clang-fix-cmpxchg8-detection-on-i386
authorLLVM Packaging Team <pkg-llvm-team@lists.alioth.debian.org>
Sat, 14 Jan 2017 10:46:16 +0000 (10:46 +0000)
committerSylvestre Ledru <sylvestre@debian.org>
Sat, 14 Jan 2017 10:46:16 +0000 (10:46 +0000)
commitbd3b7bbf6e4c02b08f157795ba058594328ea579
treeb0c346d2c193ca055431b8f875c03d6ade246a00
parentb3973f0fce544fde2553cc07de9299fd34f65640
clang-fix-cmpxchg8-detection-on-i386

libcxx atomic tests for old i386 fail with wrong Atomic inline width.
cmpxchg8b instruction is required for 8 byte atomics that clang was
assuming.

Too bad _GCC_ATOMIC_LLONG_LOCK_FREE 2 isn't supported even with this change
because llvm doesn't support unaligned atomic compare and exchange operation.
Fallback calls to libatomic.so should handle long long lock free but clang
can't tell program if libatomic is always lock free.

Related bug: https://llvm.org/bugs/show_bug.cgi?id=19355

Gbp-Pq: Name clang-fix-cmpxchg8-detection-on-i386.patch
clang/lib/Basic/Targets.cpp
clang/test/Sema/atomic-ops.c